package pe.gob.bcrp.sgci.gestion.reportes.svc.librosprincipales;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Vector;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import pe.gob.bcrp.sgci.gestion.reportes.util.DateUtil;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.impl.librosprincipales.ReporteVersionLibroMayorDAOImpl;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.impl.librosprincipales.ReporteVersionLibroMayorDetalleDAOImpl;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.librosprincipales.ReporteVersionLibroMayorDAO;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.librosprincipales.ReporteVersionLibroMayorDetalleDAO;
import pe.gob.bcrp.sgci.gestion.reportes.model.entity.librosprincipales.ReporteVersionLibroMayor;
import pe.gob.bcrp.sgci.gestion.reportes.model.entity.librosprincipales.ReporteVersionLibroMayorDetalle;

@Stateless
public class LibMayorSvc {
	
	@EJB
	ReporteVersionLibroMayorDAO reporteVersionLibroMayorDAO;
	
	@EJB
	ReporteVersionLibroMayorDetalleDAO reporteVersionLibroMayorDetalleDAO;
	
	/*public Vector<ReporteVersionLibroMayorDetalle> buscarPorFechas(String desde, String hasta){
		
		String formato = DateUtil.FORMATO_FECHA_YYYY_MM_DD;
		Date desdeDate = DateUtil.stringToDate(desde, formato);
		Date hastaDate = DateUtil.stringToDate(hasta, formato);
		
		LibMayorDAO libMayorDAO = new LibMayorDAOImpl();
		Vector<LibMayor> vectorLibMayor = (Vector<LibMayor>) libMayorDAO.findByDate(desdeDate, hastaDate);
		
		return vectorLibMayor;
	}*/
	
	public Vector<ReporteVersionLibroMayorDetalle> buscar(int codigo){
		BigDecimal cod = new BigDecimal(codigo);
		reporteVersionLibroMayorDAO = new ReporteVersionLibroMayorDAOImpl();
		
		ReporteVersionLibroMayor repVerLibDia = reporteVersionLibroMayorDAO.findById(cod);
		
		Object[] arrObject = repVerLibDia.getRepVerLibMayDetList().toArray();
        List list = Arrays.asList(arrObject);
        Vector vector = new Vector(list);
		
		return vector;
	}
	
	public ReporteVersionLibroMayor buscarRepVerLibMayor(int codigo){
		BigDecimal cod = new BigDecimal(codigo);
		reporteVersionLibroMayorDAO = new ReporteVersionLibroMayorDAOImpl();
		
		ReporteVersionLibroMayor repVerLibDia = reporteVersionLibroMayorDAO.findById(cod);
		
		return repVerLibDia ;
	}
	
	public Vector<ReporteVersionLibroMayorDetalle> buscarTodos(){
		reporteVersionLibroMayorDetalleDAO = new ReporteVersionLibroMayorDetalleDAOImpl();
		return (Vector<ReporteVersionLibroMayorDetalle>) reporteVersionLibroMayorDetalleDAO.findAll();
	}
	
	public long createNuevoReporteVersionLibroMayor(){
		reporteVersionLibroMayorDAO = new ReporteVersionLibroMayorDAOImpl();
		return reporteVersionLibroMayorDAO.createNuevoReporteVersionLibroMayor("1", DateUtil.stringToDate("01-04-2012", "dd-MM-yyyy"), DateUtil.stringToDate("10-04-2012", "dd-MM-yyyy"));
	}
	
	public static void main(String[] args) {
		LibMayorSvc l = new LibMayorSvc();
		System.out.println("->ENTRA");
		try{
			ReporteVersionLibroMayor repVerLibMayor = l.buscarRepVerLibMayor( 1 );
			System.out.println("----------DATOS");
			System.out.println(repVerLibMayor.getFecDesdeString());
			System.out.println(repVerLibMayor.getFecHastaString());
			System.out.println(repVerLibMayor.getReporteVersion().getFecProcesoFormateada());
			System.out.println(repVerLibMayor.getReporteVersion().getHoraProcesoFormateada());
			System.out.println("->TERMIN O!!");
		}catch(Exception e){
			System.out.println("GG: "+ e);
		}
		System.out.println("HABLAMOS");
	}	
}
